package com.yanqu.road.server.logic.mail;

import com.yanqu.road.entity.activity.ActivityInfo;
import com.yanqu.road.entity.config.goods.GoodsInfo;
import com.yanqu.road.entity.enums.eLogMoneyType;
import com.yanqu.road.logic.bussiness.player.UserMailBussiness;
import com.yanqu.road.logic.config.GameConfig;
import com.yanqu.road.entity.player.ServerMail;
import com.yanqu.road.entity.player.UserMail;
import com.yanqu.road.server.GameServer;
import com.yanqu.road.server.gameplayer.GamePlayer;
import com.yanqu.road.server.gameplayer.module.mail.MailModule;
import com.yanqu.road.server.manger.MammonConfigMgr;
import com.yanqu.road.server.manger.MultipleLanguageMgr;
import com.yanqu.road.server.manger.activity.ActivityInfoMgr;
import com.yanqu.road.server.manger.activity.able.ActivityAbleMgr;
import com.yanqu.road.server.manger.config.GoodsMgr;
import com.yanqu.road.server.manger.mammon.MammonMgr;
import com.yanqu.road.server.manger.player.UserMgr;
import com.yanqu.road.server.manger.player.GamePlayerMgr;
import com.yanqu.road.utils.UUIDHelper;
import com.yanqu.road.utils.date.DateHelper;
import com.yanqu.road.utils.property.Property;
import com.yanqu.road.utils.property.PropertyHelper;
import com.yanqu.road.utils.string.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class MailManager {

    private static Logger logger = LogManager.getLogger(MailManager.class.getName());
    public static final String MALL_BUY_OVER_TIME_TITLE = "MALL_BUY_OVER_TIME_TITLE";   //"购买活动商品过期返还元宝";
    public static final String MALL_BUY_OVER_TIME_CONTENT = "MALL_BUY_OVER_TIME_CONTENT";  //"亲爱的掌柜，由于您在{0}购买的活动商品{1}已过期，现将您的购买金额直接兑换为元宝返还给您。";
    public static final String MALL_REPEAT_BUY_TITLE = "MALL_REPEAT_BUY_TITLE";//"重复购买商品返还元宝";
    public static final String MALL_REPEAT_BUY_CONTENT = "MALL_REPEAT_BUY_CONTENT";//"由于您重复下单购买商品{0}，现将购买金额直接兑换为元宝返还给您";
    public static final String UNION_BE_KICK_TITLE = "UNION_BE_KICK_TITLE";//"商会通知";
    public static final String UNION_BE_KICK_CONTENT = "UNION_BE_KICK_CONTENT";//"您被{0}踢出商会，贡献值减少{1}，剩余个人贡献{2}";
    public static final String UNION_DELETE_TITLE = "UNION_DELETE_TITLE";//"商会解散通知";
    public static final String UNION_DELETE_CONTENT = "UNION_DELETE_CONTENT";//"您的商会已被解散，贡献值减少{1}，剩余个人贡献{2}";
    public static final String UNION_FIRST_JOIN_TITLE = "UNION_FIRST_JOIN_TITLE";//"商会通知";
    public static final String UNION_FIRST_JOIN_CONTENT = "UNION_FIRST_JOIN_CONTENT";//"首次加入商会奖励";
    public static final String MARRIAGE_SUCCESS_TITLE = "MARRIAGE_SUCCESS_TITLE";//"联姻成功";
    public static final String MARRIAGE_SUCCESS_CONTENT = "MARRIAGE_SUCCESS_CONTENT";//"恭喜您的子嗣{0}与玩家{1}的子嗣{2}联姻成功，收获对方赠礼";
    public static final String RANK_ACTIVITY_FINISH_TITLE = "RANK_ACTIVITY_FINISH_TITLE";//"冲榜活动发放奖励";
    public static final String RANK_ACTIVITY_FINISH_CONTENT = "RANK_ACTIVITY_FINISH_CONTENT";//"{0}结束，您在活动中排名{1}，发放活动排名奖励";
    public static final String TRADE_WAR_BE_WANTED_TITLE = "TRADE_WAR_BE_WANTED_TITLE";//"通缉通知";
    public static final String TRADE_WAR_BE_WANTED_CONTENT = "TRADE_WAR_BE_WANTED_CONTENT";//"您在{0}时间被玩家{1}发起通缉";
    public static final String MINE_WAR_BE_ROB_TITLE = "MINE_WAR_BE_ROB_TITLE";//"寻宝矿坑被抢占";
    public static final String MINE_WAR_BE_ROB_CONTENT = "MINE_WAR_BE_ROB_CONTENT";//"您在寻宝中的矿坑{0}被玩家{1}抢占，返回您占领期间的收益";
    public static final String MINE_WAR_WITHDRAW_PIT_TITLE = "MINE_WAR_WITHDRAW_PIT_TITLE";//"寻宝撤出矿坑奖励";
    public static final String MINE_WAR_WITHDRAW_PIT_CONTENT = "MINE_WAR_WITHDRAW_PIT_CONTENT";//"您在寻宝中的矿坑{0}由于超过{1}小时未领取收益，因此自动撤回，返回您占领期间的收益";
    public static final String ESTATE_WAR_DAILY_REWARD_TITLE = "ESTATE_WAR_DAILY_REWARD_TITLE";//"乔迁风云每日奖励";
    public static final String ESTATE_WAR_DAILY_REWARD_CONTENT = "ESTATE_WAR_DAILY_REWARD_CONTENT";//"您在乔迁风云中最近一次的楼层奖励已来，再接再励更上一层楼";
    public static final String TITLE_DAILY_REWARD_TITLE = "TITLE_DAILY_REWARD_TITLE";//"身份每日奖励";
    public static final String TITLE_DAILY_REWARD_CONTENT = "TITLE_DAILY_REWARD_CONTENT";//"您在升级身份时候，当日的每日奖励没有领取，现已发放";
    public static final String SACRIFICE_DAMAGE_RANK_REWARD_TITLE = "SACRIFICE_DAMAGE_RANK_REWARD_TITLE";  //"祭天伤害榜奖励";
    public static final String SACRIFICE_DAMAGE_RANK_REWARD_CONTENT = "SACRIFICE_DAMAGE_RANK_REWARD_CONTENT";  //"{0}时间的祭天结束，您在其中伤害排名{1}，发放伤害排名奖励";
    public static final String MONTH_CARD_REWARD_TITLE = "MONTH_CARD_REWARD_TITLE";      //"月卡补发收益";
    public static final String MONTH_CARD_REWARD_CONTENT = "MONTH_CARD_REWARD_CONTENT";  //"未领取{0}天的月卡收益，现已补发";
    public static final String YEAR_CARD_REWARD_TITLE = "YEAR_CARD_REWARD_TITLE";      //"年卡补发收益";
    public static final String YEAR_CARD_REWARD_CONTENT = "YEAR_CARD_REWARD_CONTENT";  //"未领取{0}天的年卡收益，现已补发";
    public static final String COMMON_ACTIVITY_GOODS_AUTO_CONSUME_TITLE = "COMMON_ACTIVITY_GOODS_AUTO_CONSUME_TITLE";      //"{0}活动";
    public static final String COMMON_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT = "COMMON_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT";  //"亲爱的掌柜，由于您在上次{0}活动中，{1}×{2} 未及时使用，现已为您自动使用（无法获得活动积分），敬请查收！";
    public static final String PLATFORM_MAIL_REWARD_TITLE = "PLATFORM_MAIL_REWARD_TITLE";         //"系统邮件";
    public static final String PLATFORM_MAIL_REWARD_CONTENT = "PLATFORM_MAIL_REWARD__CONTENT";   //"系统邮件奖励";
    public static final String BANQUET_LUCK_USER_TITLE = "BANQUET_LUCK_USER_TITLE";   //"";
    public static final String BANQUET_LUCK_USER_CONTENT = "BANQUET_LUCK_USER_CONTENT";   //"亲爱的掌柜，你在参与{0}的{1}时，幸运获得了满座礼，附件为奖励，敬请查收。";
    public static final String CROSS_PARTY_LUCK_USER_CONTENT = "CROSS_PARTY_LUCK_USER_CONTENT";   //"亲爱的掌柜，你在参与{0}的{1}时，幸运获得了满座礼，附件为奖励，敬请查收。";
    public static final String CROSS_PARTY_LUCK_USER_TITLE = "CROSS_PARTY_LUCK_USER_TITLE";   //"亲爱的掌柜，你在参与{0}的{1}时，幸运获得了满座礼，附件为奖励，敬请查收。";



    public static final String COOKBOY_RETURN_ITEM_TITLE = "COOKBOY_RETURN_ITEM_TITLE";   //"厨神小当家";
    public static final String COOKBOY_RETURN_ITEM_CONTENT = "COOKBOY_RETURN_ITEM_CONTENT";   //"亲爱的掌柜，由于您在本次酒家经营活动中，有{0}个厨具包未及时使用，现已为您兑换为活动积分{1}，敬请查收！";

    public static final String COOK_BOY2_FOOD_RECOVERY_TITLE = "COOK_BOY2_FOOD_RECOVERY_TITLE";   //"剩余菜品";
    public static final String COOK_BOY2_FOOD_RECOVERY_CONTENT = "COOK_BOY2_FOOD_RECOVERY_CONTENT";   //"亲爱的掌柜，由于您在本次小当家特级考核活动中，有{0}道菜品未使用，累计可供{1}人试吃，现已为您兑换为{2}活动积分，敬请查收！";
    public static final String COOK_BOY2_ITEM_RECOVERY_TITLE = "COOK_BOY2_ITEM_RECOVERY_TITLE";   //"剩余挑菜牌";
    public static final String COOK_BOY2_ITEM_RECOVERY_CONTENT = "COOK_BOY2_ITEM_RECOVERY_CONTENT";   //"亲爱的掌柜，由于您在本次小当家特级考核活动中，有{0}个挑菜牌道具未及时使用，现已为您兑换为活动积分{1}，敬请查收！";

    public static final String COOKBOY_MAIL_TITLE_1 = "COOKBOY_MAIL_TITLE_1"; // 自动回访汤匙返还
    public static final String COOKBOY_MAIL_CONTENT_1 = "COOKBOY_MAIL_CONTENT_1"; // 亲爱的掌柜，本次自动回访中，银制厨神汤匙回访{0}次；金制厨神汤匙回访{1}次；玉制厨神汤匙回访{2}次。以下是未进行回访的道具，现已返还，敬请查收！
    public static final String COOKBOY_MAIL_TITLE_2 = "COOKBOY_MAIL_TITLE_2"; // 自动回访汤匙返还
    public static final String COOKBOY_MAIL_CONTENT_2 = "COOKBOY_MAIL_CONTENT_2"; // 亲爱的掌柜，以下是本次自动回访期间未进行回访的道具，现已返还，敬请查收！
    public static final String COOKBOY_MAIL_TITLE_3 = "COOKBOY_MAIL_TITLE_3"; // 自动回访奖励邮件
    public static final String COOKBOY_MAIL_CONTENT_3 = "COOKBOY_MAIL_CONTENT_3"; // 亲爱的掌柜，本次自动回访中，{0}回访{1}次。以下是获得的回访奖励，敬请查收！

    public static final String CHEF_DUEL2_FOOD_RECOVERY_TITLE = "CHEF_DUEL2_FOOD_RECOVERY_TITLE";   //"剩余菜品";
    public static final String CHEF_DUEL2_FOOD_RECOVERY_CONTENT = "CHEF_DUEL2_FOOD_RECOVERY_CONTENT";   //"亲爱的掌柜，由于您在本次小当家特级考核活动中，有{0}道菜品未使用，累计可供{1}人试吃，现已为您兑换为{2}活动积分，敬请查收！";
    public static final String CHEF_DUEL2_ITEM_RECOVERY_TITLE = "CHEF_DUEL2_ITEM_RECOVERY_TITLE";   //"剩余挑菜牌";
    public static final String CHEF_DUEL2_ITEM_RECOVERY_CONTENT = "CHEF_DUEL2_ITEM_RECOVERY_CONTENT";   //"亲爱的掌柜，由于您在本次小当家特级考核活动中，有{0}个挑菜牌道具未及时使用，现已为您兑换为活动积分{1}，敬请查收！";

    public static final String CHEFDUEL_MAIL_TITLE = "CHEFDUEL_MAIL_TITLE";   //厨神对决排名榜
    public static final String CHEFDUEL_MAIL_CONTENT_1 = "CHEFDUEL_MAIL_CONTENT_1";  //由于您在厨神对决阵营榜单中胜利的奖励未领取，现已为您补发，请查收！
    public static final String CHEFDUEL_MAIL_CONTENT_2 = "CHEFDUEL_MAIL_CONTENT_2";  //由于您在厨神对决阵营榜单中失败的奖励未领取，现已为您补发，请查收！

    public static final String CHEFDUEL_MAIL_TITLE_3 = "CHEFDUEL_MAIL_TITLE_3";   //邮件标题：厨神竞猜奖励补发
    public static final String CHEFDUEL_MAIL_CONTENT_3 = "CHEFDUEL_MAIL_CONTENT_3";  //邮件内容：亲爱的掌柜，您在厨神对决活动中有未领取的竞猜奖励，现为您补发，敬请查收！

    public static final String CHEFDUEL_BANQUET_MAIL_TITLE_1 = "CHEFDUEL_BANQUET_MAIL_TITLE_1"; // 自动回访试吃道具返还
    public static final String CHEFDUEL_BANQUET_MAIL_CONTENT_1 = "CHEFDUEL_BANQUET_MAIL_CONTENT_1"; // 亲爱的掌柜，本次自动回访中，银制厨神汤匙回访{0}次；金制厨神筷子回访{3}次；金制厨神汤匙回访{1}次；玉制厨神汤匙回访{2}次。以下是未进行回访的道具，现已返还，敬请查收！
    public static final String CHEFDUEL_BANQUET_MAIL_TITLE_2 = "CHEFDUEL_BANQUET_MAIL_TITLE_2"; // 自动回访试吃道具返还
    public static final String CHEFDUEL_BANQUET_MAIL_CONTENT_2 = "CHEFDUEL_BANQUET_MAIL_CONTENT_2"; // 亲爱的掌柜，以下是本次自动回访期间未进行回访的道具，现已返还，敬请查收！
    public static final String CHEFDUEL_BANQUET_MAIL_TITLE_3 = "CHEFDUEL_BANQUET_MAIL_TITLE_3"; // 自动回访奖励邮件
    public static final String CHEFDUEL_BANQUET_MAIL_CONTENT_3 = "CHEFDUEL_BANQUET_MAIL_CONTENT_3"; // 亲爱的掌柜，本次自动回访中，{0}回访{1}次。以下是获得的回访奖励，敬请查收！

    public static final String REBATE_TITLE = "REBATE_TITLE";   //"返元宝标题";
    public static final String REBATE_CONTENT = "REBATE_CONTENT";   //"返元宝内容";

    public static final String PASS_EVENT_RECALL_TITLE = "PASS_EVENT_RECALL_TITLE";   //"老用户事件返利标题";
    public static final String PASS_EVENT_RECALL_CONTENT = "PASS_EVENT_RECALL_CONTENT";   //"老用户事件返利内容";

    public static final String DISPERSE_GOLD_REWARD_TITLE = "DISPERSE_GOLD_REWARD_TITLE";      //"财神送财";
    public static final String DISPERSE_GOLD_REWARD_CONTENT = "DISPERSE_GOLD_REWARD_CONTENT";  //"共有{0}名玩家观看；送出元宝数{1},送出银两数{2}";

    public static final String RELATIVES_SUCCESS_TITLE = "RELATIVES_SUCCESS_TITLE";      //"结成亲家";
    public static final String RELATIVES_SUCCESS_CONTENT = "RELATIVES_SUCCESS_CONTENT";  //"亲爱的掌柜，恭喜您与{0}结为亲家，共修两姓之好！";
    public static final String RELATIVES_CROSS_SUCCESS_CONTENT = "RELATIVES_CROSS_SUCCESS_CONTENT";  //"亲爱的掌柜，恭喜您与{0}{1}结为亲家，共修两姓之好！";

    public static final String RELATIVES_CANCEL_TITLE = "RELATIVES_CANCEL_TITLE";      //"解除亲家";
    public static final String RELATIVES_CANCEL_CONTENT = "RELATIVES_CANCEL_CONTENT";  //"亲爱的掌柜，您与{0}解除了亲家关系。";
    public static final String RELATIVES_CROSS_CANCEL_CONTENT = "RELATIVES_CROSS_CANCEL_CONTENT";  //"亲爱的掌柜，您与{0}{1}解除了亲家关系。";

    public static final String USER_NAME_CHANGE_TITLE = "USER_NAME_CHANGE_TITLE";      //"角色名称违规";
    public static final String USER_NAME_CHANGE_CONTENT = "USER_NAME_CHANGE_CONTENT";  //"您的角色名称违规，请改名";

    public static final String UNION_NAME_CHANGE_TITLE = "UNION_NAME_CHANGE_TITLE";      //"工会名称违规";
    public static final String UNION_NAME_CHANGE_CONTENT = "UNION_NAME_CHANGE_CONTENT";  //"您的工会名称违规，请改名";

    public static final String UNION_NOTICE_CHANGE_TITLE = "UNION_NOTICE_CHANGE_TITLE";      //"工会公告违规";
    public static final String UNION_NOTICE_CHANGE_CONTENT = "UNION_NOTICE_CHANGE_CONTENT";  //"您的工会公告违规，请改名";


    public static final String UNION_PARERGON_FINISH_TITLE = "UNION_PARERGON_FINISH_TITLE";      //"副业完成标题";
    public static final String UNION_PARERGON_FINISH_CONTENT = "UNION_PARERGON_FINISH_CONTENT";  //"副业完成内容";

    public static final String UNION_PARERGON_CANNOT_FINISH_TITLE = "UNION_PARERGON_CANNOT_FINISH_TITLE";      //"副业无法领取奖励标题";
    public static final String UNION_PARERGON_CANNOT_FINISH_CONTENT = "UNION_PARERGON_CANNOT_FINISH_CONTENT";  //"副业无法领取奖励内容";

    public static final String ACTIVITY_ORE_WAR_TIMEOVER_TITLE = "ACTIVITY_ORE_WAR_TIMEOVER_TITLE";      //"每日撤回盐场活动标题";
    public static final String ACTIVITY_ORE_WAR_TIMEOVER_CONTENT = "ACTIVITY_ORE_WAR_TIMEOVER_CONTENT";  //"每日撤回盐场活动内容";

    public static final String ACTIVITY_ORE_WAR_NAMING_CHANGE_TITLE = "ACTIVITY_ORE_WAR_NAMING_CHANGE_TITLE";      //"盐场活动冠名权发生改变发送奖励标题";
    public static final String ACTIVITY_ORE_WAR_NAMING_CHANGE_CONTENT = "ACTIVITY_ORE_WAR_NAMING_CHANGE_CONTENT";  //"盐场活动冠名权发生改变发送奖励内容";

    public static final String ACTIVITY_ORE_WAR_BLOWOUT_TITLE = "ACTIVITY_ORE_WAR_BLOWOUT_TITLE";      //"盐场活动井喷开始发送奖励标题";
    public static final String ACTIVITY_ORE_WAR_BLOWOUT_CONTENT = "ACTIVITY_ORE_WAR_BLOWOUT_CONTENT";  //"盐场活动井喷开始发送奖励内容";

    public static final String EVERY_DAY_RECHARGE_REWARD_SEND_TITLE = "EVERY_DAY_RECHARGE_REWARD_SEND_TITLE";      //"每日充值奖励补发标题";
    public static final String EVERY_DAY_RECHARGE_REWARD_SEND_CONTENT = "EVERY_DAY_RECHARGE_REWARD_SEND_CONTENT";  //"每日充值奖励补发内容";
    public static final String All_RECHARGE_REWARD_SEND_TITLE = "All_RECHARGE_REWARD_SEND_TITLE";      //"累计充值奖励补发标题";
    public static final String All_RECHARGE_REWARD_SEND_CONTENT = "All_RECHARGE_REWARD_SEND_CONTENT";  //"累计充值奖励补发内容";
    public static final String DAYS_RECHARGE_REWARD_SEND_TITLE = "DAYS_RECHARGE_REWARD_SEND_TITLE";      //"累天充值奖励补发标题";
    public static final String DAYS_RECHARGE_REWARD_SEND_CONTENT = "DAYS_RECHARGE_REWARD_SEND_CONTENT";  //"累天充值奖励补发内容";

    public static final String TRACK_TRADE_WAR_SCORE_REWORD_TITLE = "TRACK_TRADE_WAR_SCORE_REWORD_TITLE";      //"发布通缉积分奖励标题";
    public static final String TRACK_TRADE_WAR_SCORE_REWORD_CONTENT = "TRACK_TRADE_WAR_SCORE_REWORD_CONTENT";  //"发布通缉积分奖励内容";

    public static final String HOLIDAY_ACTIVITY_PROGRESS_REWORD_TITLE = "HOLIDAY_ACTIVITY_PROGRESS_REWORD_TITLE";       //进度未领取奖励发放
    public static final String HOLIDAY_ACTIVITY_PROGRESS_REWORD_CONTENT = "HOLIDAY_ACTIVITY_PROGRESS_REWORD_CONTENT";       //进度未领取奖励发放
    public static final String HOLIDAY_ACTIVITY_GOODS_AUTO_CONSUME_TITLE = "HOLIDAY_ACTIVITY_GOODS_AUTO_CONSUME_TITLE";      //"{0}活动";
    public static final String HOLIDAY_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT = "HOLIDAY_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT";  //"亲爱的掌柜，由于您在上次{0}活动中，{1}×{2} 未及时使用，现已为您自动使用（获得活动积分{3}），敬请查收！";
    public static final String ACTIVITY_DISPERSE_GOLD_REWARD_TITLE = "ACTIVITY_DISPERSE_GOLD_REWARD_TITLE";      //"活动送糖";
    public static final String ACTIVITY_DISPERSE_GOLD_REWARD_CONTENT = "ACTIVITY_DISPERSE_GOLD_REWARD_CONTENT";  //"共有{0}名玩家观看；送出银两数{1}、糖果数{2}";

    public static final String PAGEANT_ACTIVITY_GOODS_AUTO_CONSUME_TITLE = "PAGEANT_ACTIVITY_GOODS_AUTO_CONSUME_TITLE";      //"{0}活动";
    public static final String PAGEANT_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT = "PAGEANT_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT";  //"亲爱的掌柜，由于您在上次{0}活动中，{1}×{2} 未及时使用，现已为您自动转换活动积分，敬请查收！";

    public static final String YEAR_MASTER_ACTIVITY_GOODS_AUTO_CONSUME_TITLE = "YEAR_MASTER_ACTIVITY_GOODS_AUTO_CONSUME_TITLE";      //"{0}活动";
    public static final String YEAR_MASTER_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT = "YEAR_MASTER_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT";  //"亲爱的掌柜，由于您在上次{0}活动中，{1}×{2} 未及时使用，现已为您自动转换活动积分，敬请查收！";

    public static final String UNION_TRADE_NORMAL_REWARD_SEND_TITLE = "UNION_TRADE_NORMAL_REWARD_SEND_TITLE";   //商贸完成发送奖励标题
    public static final String UNION_TRADE_NORMAL_REWARD_SEND_CONTENT = "UNION_TRADE_NORMAL_REWARD_SEND_CONTENT";   //商贸完成发送奖励内容

    public static final String UNION_HUA_BEN_SETTLE_REWARD_SEND_TITLE = "UNION_HUA_BEN_SETTLE_REWARD_SEND_TITLE";   //商会话本-结算奖励标题
    public static final String UNION_HUA_BEN_SETTLE_REWARD_SEND_CONTENT = "UNION_HUA_BEN_SETTLE_REWARD_SEND_CONTENT"; //商会话本-结算奖励内容  评级达到{0}， 获得额外积分{1}

    public static final String ACTIVITY_DISPERSE_GOLD_THROWING_POT_REWARD_TITLE = "ACTIVITY_DISPERSE_GOLD_THROWING_POT_REWARD_TITLE";      //"投壶活动飞箭送礼";
    public static final String ACTIVITY_DISPERSE_GOLD_THROWING_POT_REWARD_CONTENT = "ACTIVITY_DISPERSE_GOLD_THROWING_POT_REWARD_CONTENT";  //"共有{0}名玩家观看；送出银两数{1}、箭袋数{2}";

    public static final String ACTIVITY_DISPERSE_GOLD_YEAR_MASTER_REWARD_TITLE = "ACTIVITY_DISPERSE_GOLD_YEAR_MASTER_REWARD_TITLE";      //"瑞兽降福活动送礼";
    public static final String ACTIVITY_DISPERSE_GOLD_YEAR_MASTER_REWARD_CONTENT = "ACTIVITY_DISPERSE_GOLD_YEAR_MASTER_REWARD_CONTENT";  //"共有{0}名玩家观看；送出银两数{1}、元宝数{2}";

    public static final String ACTIVITY_PPL_AUTO_USE_GOODS_TITLE = "ACTIVITY_PPL_AUTO_USE_GOODS_TITLE"; // "琴谱自动赠送说明"
    public static final String ACTIVITY_PPL_AUTO_USE_GOODS_CONTENT = "ACTIVITY_PPL_AUTO_USE_GOODS_CONTENT"; // "由于活动结束后，你在平乐坊中遗留琴谱。系统已自动赠送给魅力最高的美女-{0}，{0}魅力+{1}";
    public static final String ACTIVITY_DISPERSE_GOLD_TREASURE_REWARD_TITLE = "ACTIVITY_DISPERSE_GOLD_TREASURE_REWARD_TITLE";      //  {0}活动
    public static final String ACTIVITY_DISPERSE_GOLD_TREASURE_REWARD_CONTENT = "ACTIVITY_DISPERSE_GOLD_TREASURE_REWARD_CONTENT";  //  共有{0}名玩家观看，送出银两数{1}、{3}{4}

    public static final String TREASURE_ACTIVITY_GOODS_AUTO_CONSUME_TITLE = "TREASURE_ACTIVITY_GOODS_AUTO_CONSUME_TITLE";      //"{0}活动";
    public static final String TREASURE_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT = "TREASURE_ACTIVITY_GOODS_AUTO_CONSUME_CONTENT";  //亲爱的掌柜，由于您在上次{0}活动中，{1}×{2} 未及时使用，现已为您自动转换活动积分，敬请查收！
    // 通用的活动道具转换邮件
    public static final String ACTIVITY_GOODS_AUTO_CONSUME_TITLE = "ACTIVITY_GOODS_AUTO_CONSUME_TITLE"; // " {0}活动"
    public static final String ACTIVITY_GOODS_AUTO_CONSUME_CONTENT = "ACTIVITY_GOODS_AUTO_CONSUME_CONTENT"; // " 亲爱的掌柜，由于您在{0}活动中，{1}×{2} 未及时使用，现已为您自动转换为{3}，敬请查收！"

    public static final String TREASURE_ACTIVITY_PROGRESS_REWORD_TITLE = "TREASURE_ACTIVITY_PROGRESS_REWORD_TITLE";           //{0}活动进度未领取奖励发放
    public static final String TREASURE_ACTIVITY_PROGRESS_REWORD_CONTENT = "TREASURE_ACTIVITY_PROGRESS_REWORD_CONTENT";       //亲爱的掌柜，您在 {0}活动中还有未领取的进度奖励，现已补发，敬请查收。

    public static final String DRAW_PICTURES_ACTIVITY_PICTURES_AUTO_CONSUME_TITLE = "DRAW_PICTURES_ACTIVITY_PICTURES_AUTO_CONSUME_TITLE";
    public static final String DRAW_PICTURES_ACTIVITY_PICTURES_AUTO_CONSUME_CONTENT = "DRAW_PICTURES_ACTIVITY_PICTURES_AUTO_CONSUME_CONTENT";

    public static final String MONTH_CARD_EXPIRE_TITLE = "MONTH_CARD_EXPIRE_TITLE";              // 温馨提示
    public static final String MONTH_CARD_EXPIRE_CONTENT = "MONTH_CARD_EXPIRE_CONTENT";          // 亲爱的行规，您的月卡将于{0}到期，届时以下月卡将失效...
    public static final String MONTH_CARD_EXPIRE_TITLE_ADD = "MONTH_CARD_EXPIRE_TITLE_ADD";              // 温馨提示
    public static final String MONTH_CARD_EXPIRE_CONTENT_ADD = "MONTH_CARD_EXPIRE_CONTENT_ADD";          // 亲爱的行规，您的月卡将于{0}到期，届时以下月卡将失效...
    public static final String YEAR_CARD_EXPIRE_TITLE = "YEAR_CARD_EXPIRE_TITLE";                // 温馨提示
    public static final String YEAR_CARD_EXPIRE_CONTENT = "YEAR_CARD_EXPIRE_CONTENT";            // 亲爱的行规，您的年卡将于{0}到期，届时以下年卡将失效...

    public static final String STRONGHOLD_TRADE_CONTENT = "STRONGHOLD_TRADE_CONTENT"; //西域通商邮件
    public static final String STRONGHOLD_TRADE_TITLE = "STRONGHOLD_TRADE_TITLE"; //西域通商标题


    public static final String STRONGHOLD_RETURN_ITEM_CONTENT = "STRONGHOLD_RETURN_ITEM_CONTENT"; //据点战回收道具邮件内容
    public static final String STRONGHOLD_RETURN_ITEM_TITLE = "STRONGHOLD_RETURN_ITEM_TITLE"; //据点战回收道具邮件标题

    public static final String STRONGHOLD_RETURN_MAMMON_ITEM_CONTENT = "STRONGHOLD_RETURN_MAMMON_ITEM_CONTENT"; //据点战回收道具邮件内容
    public static final String STRONGHOLD_RETURN_MAMMON_ITEM_TITLE = "STRONGHOLD_RETURN_MAMMON_ITEM_TITLE"; //据点战回收道具邮件标题

    public static final String STRONGHOLD_RETURN_TRADE_ITEM_CONTENT = "STRONGHOLD_RETURN_TRADE_ITEM_CONTENT"; //据点战回收西域通商道具邮件内容
    public static final String STRONGHOLD_RETURN_TRADE_ITEM_TITLE = "STRONGHOLD_RETURN_TRADE_ITEM_CONTENT"; //据点战回收西域通商道具邮件标题

    public static final String PEAKSTRONGHOLD_RETURN_ITEM_CONTENT = "PEAKSTRONGHOLD_RETURN_ITEM_CONTENT"; //巅峰据点战回收道具邮件内容(捐献)
    public static final String PEAKSTRONGHOLD_RETURN_ITEM_TITLE = "PEAKSTRONGHOLD_RETURN_ITEM_TITLE"; //巅峰据点战回收道具邮件标题(捐献)

    public static final String PEAKSTRONGHOLD_RETURN_MAMMON_ITEM_CONTENT = "PEAKSTRONGHOLD_RETURN_MAMMON_ITEM_CONTENT"; //巅峰据点战回收变成其他随机道具邮件内容(财神助力)
    public static final String PEAKSTRONGHOLD_RETURN_MAMMON_ITEM_TITLE = "PEAKSTRONGHOLD_RETURN_MAMMON_ITEM_TITLE"; //巅峰据点战回收变成其他随机道具邮件标题(财神助力)

    public static final String MONOPOLY_GOODS_AUTO_CONSUME_TITLE = "MONOPOLY_GOODS_AUTO_CONSUME_TITLE"; // {0}活动
    public static final String MONOPOLY_GOODS_AUTO_CONSUME_CONTENT = "MONOPOLY_GOODS_AUTO_CONSUME_CONTENT"; // 亲爱的掌柜，由于您在{0}活动中，{1}×{2} 、活动卡片×{3}未及时使用，现已为您自动转换为{4}，敬请查收！

    public static final String ZHAOSHANG_PROJECT_SEAT_EXPEL_TITLE = "ZHAOSHANG_PROJECT_SEAT_EXPEL_TITLE";   //招商被驱逐通知
    public static final String ZHAOSHANG_PROJECT_SEAT_EXPEL_CONTENT = "ZHAOSHANG_PROJECT_SEAT_EXPEL_CONTENT"; //#对方身份/区服##对方昵称#将你驱逐出#项目名称#项目，并抢占了您的位置。详情可前往招商系统内查看。

    public static final String ZHAOSHANG_END_TITLE = "ZHAOSHANG_END_TITLE";   //招商项目结束通知
    public static final String ZHAOSHANG_END_CONTENT = "ZHAOSHANG_END_CONTENT"; //亲爱的掌柜，恭喜您的{2}项目成功收官！请前往招商界面领取收益。

    public static final String UNION_WAR_ACTIVITY_JIN_NANG_BACK_TITLE = "UNION_WAR_ACTIVITY_JIN_NANG_BACK_TITLE";       //群英争霸锦囊返还
    public static final String UNION_WAR_ACTIVITY_JIN_NANG_BACK_CONTENT = "UNION_WAR_ACTIVITY_JIN_NANG_BACK_CONTENT";   //亲爱的大掌柜，您在群英争霸活动决赛中由于在未晋级的场次中使用了锦囊，现已返还，敬请查收！

    public static final String UNION_WAR_ACTIVITY_QUIT_UNION_JIN_NANG_BACK_TITLE = "UNION_WAR_ACTIVITY_QUIT_UNION_JIN_NANG_BACK_TITLE";
    public static final String UNION_WAR_ACTIVITY_QUIT_UNION_JIN_NANG_BACK_CONTENT = "UNION_WAR_ACTIVITY_QUIT_UNION_JIN_NANG_BACK_CONTENT";

    public static final String SHUIHU_ACTIVITY_AUTO_SEND_REWARD_TITLE = "SHUIHU_ACTIVITY_AUTO_SEND_REWARD_TITLE"; // 水浒卡
    public static final String SHUIHU_ACTIVITY_AUTO_SEND_REWARD_CONTENT = "SHUIHU_ACTIVITY_AUTO_SEND_REWARD_CONTENT"; // 亲爱的掌柜，由于你在上次水浒卡活动中，存在未领取的奖励，现已为您自动兑换，附件为获得奖励，敬请查收！

    public static final String XIAYUE_ACTIVITY_AUTO_SEND_REWARD_TITLE = "XIAYUE_ACTIVITY_AUTO_SEND_REWARD_TITLE"; // 夏越の祓巫女祝福奖励
    public static final String XIAYUE_ACTIVITY_AUTO_SEND_REWARD_CONTENT = "XIAYUE_ACTIVITY_AUTO_SEND_REWARD_CONTENT"; // 亲爱的掌柜，夏越の祓活动现已结束，感谢礼有您未被领取的奖励，现已补发，敬请查收

    public static String TOY_HOUSE_ACTIVITY_CONDITION_REWARD_TITLE = "TOY_HOUSE_ACTIVITY_CONDITION_REWARD_TITLE"; // 玩具屋组合奖励补发
    public static String TOY_HOUSE__ACTIVITY_CONDITION_REWARD_CONTENT = "TOY_HOUSE__ACTIVITY_CONDITION_REWARD_CONTENT"; // 亲爱的掌柜，您在玩具屋活动中，有组合奖励未领取，现已补发，请查收！
    public static String TOY_HOUSE_ACTIVITY_REWARD_TITLE = "TOY_HOUSE_ACTIVITY_REWARD_TITLE"; // 玩具屋奖励补发
    public static String TOY_HOUSE__ACTIVITY_REWARD_CONTENT = "TOY_HOUSE__ACTIVITY_REWARD_CONTENT"; // 亲爱的掌柜，您在玩具屋活动中，有职人馈赠奖励未领取，现已补发，请查收！

    public static final String CROSS_MARRIAGE_CONSUME_TITLE = "CROSS_MARRIAGE_CONSUME_TITLE"; //跨服联姻消耗返回
    public static final String CROSS_MARRIAGE_CONSUME_CONTENT = "CROSS_MARRIAGE_CONSUME_CONTENT"; //跨服联姻消耗返回
    public static final String CROSS_MARRIAGE_SUCCESS_TITLE = "CROSS_MARRIAGE_SUCCESS_TITLE"; //跨服联姻消耗返回
    public static final String CROSS_MARRIAGE_SUCCESS_CONTENT = "CROSS_MARRIAGE_SUCCESS_CONTENT"; //跨服联姻消耗返回

    public static final String TRYST_ACTIVITY_PROGRESS_AUTO_REWARD_TITLE = "TRYST_ACTIVITY_PROGRESS_AUTO_REWARD_TITLE";
    public static final String TRYST_ACTIVITY_PROGRESS_AUTO_REWARD_CONTENT = "TRYST_ACTIVITY_PROGRESS_AUTO_REWARD_CONTENT";

    public static final String BUSY_FARMING_ACTIVITY_ACHIEVEMENT_REWARD_TITLE = "BUSY_FARMING_ACTIVITY_ACHIEVEMENT_REWARD_TITLE";      //"农忙级果园等级奖励补发";
    public static final String BUSY_FARMING_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT = "BUSY_FARMING_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT";  //"亲亲爱的掌柜，您在农忙季活动中，有果园等级奖励未领取，现已补发，请查收！";

    public static final String BUSY_FARMING_ACTIVITY_GOODS_HUISHOU_TITLE = "BUSY_FARMING_ACTIVITY_GOODS_HUISHOU_TITLE";      //农忙级种子、肥料回收
    public static final String BUSY_FARMING_ACTIVITY_GOODS_HUISHOU_CONTENT = "BUSY_FARMING_ACTIVITY_GOODS_HUISHOU_CONTENT";  //亲爱的掌柜，您在农忙季活动中，有{水果名}种子*n、{水果名}种子*n、肥料*n未用完，现已折算成水果币，请查收！

    public static final String CROSS_TRADE_WAR_BE_WANTED_TITLE = "CROSS_TRADE_WAR_BE_WANTED_TITLE";//"跨服通缉通知";
    public static final String CROSS_TRADE_WAR_BE_WANTED_CONTENT = "CROSS_TRADE_WAR_BE_WANTED_CONTENT";//"您在{0}时间被玩家{1}发起通缉";
    public static final String CROSS_TRADE_WAR_WANTED_FINISH_TITLE = "CROSS_TRADE_WAR_WANTED_FINISH_TITLE";      //"跨服通缉完成奖励标题";
    public static final String CROSS_TRADE_WAR_WANTED_FINISH_CONTENT = "CROSS_TRADE_WAR_WANTED_FINISH_CONTENT";  //"跨服通缉完成奖励内容";

    public static final String GUGUOXUNBAO_ACTIVITY_REWARD_TITLE = "GUGUOXUNBAO_ACTIVITY_REWARD_TITLE";      // 古国寻宝佳人谢礼奖励
    public static final String GUGUOXUNBAO_ACTIVITY_REWARD_CONTENT = "GUGUOXUNBAO_ACTIVITY_REWARD_CONTENT";  // 亲爱的掌柜，古国寻宝活动现已结束，佳人谢礼有您未被领取的奖励，现已补发，敬请查收

    public static final String SECRET_VOLUME_AUTO_SEND_REWARD_TITLE = "SECRET_VOLUME_AUTO_SEND_REWARD_TITLE"; // 财神密卷奖励补发
    public static final String SECRET_VOLUME_AUTO_SEND_REWARD_CONTENT = "SECRET_VOLUME_AUTO_SEND_REWARD_CONTENT"; // 亲爱的掌柜，您在上期财神密卷活动中有奖励未能及时领取，现已补发，敬请查收！

    public static final String DRINK_ORDER_AUTO_REWARD_TITLE = "DRINK_ORDER_AUTO_REWARD_TITLE";      // 饮子摊订单奖励补发
    public static final String DRINK_ORDER_AUTO_REWARD_CONTENT = "DRINK_ORDER_AUTO_REWARD_CONTENT";  // 亲爱的掌柜，您在饮子摊活动中有订单奖励未领取，现已补发，请查收！

    public static final String PLATFORM_MAIL_GONGZHONGHAO_REWARD_TITLE = "PLATFORM_MAIL_GONGZHONGHAO_REWARD_TITLE";         //恭喜您获得{0};
    public static final String PLATFORM_MAIL_GONGZHONGHAO_REWARD_CONTENT = "PLATFORM_MAIL_GONGZHONGHAO_REWARD_CONTENT";     //亲爱的掌柜，您购买的{0}已发放，敬请查收。;

    public static final String BEAUTY_ESCORT_QUIT_UNION_AUTO_SETTLEMENT_REWARD_TITLE = "BEAUTY_ESCORT_QUIT_UNION_AUTO_SETTLEMENT_REWARD_TITLE";            //退出商会走镖自动结算走镖奖励
    public static final String BEAUTY_ESCORT_QUIT_UNION_AUTO_SETTLEMENT_REWARD_CONTENT = "BEAUTY_ESCORT_QUIT_UNION_AUTO_SETTLEMENT_REWARD_CONTENT";        //干粮耗尽，镖车提前结束行程。本次押镖获得如下奖励

    public static final String DUNHUANGSHIKU_RETURN_COLORING_ITEM_TITLE = "DUNHUANGSHIKU_RETURN_COLORING_ITEM_TITLE"; // 敦煌石窟回收颜料邮件标题
    public static final String DUNHUANGSHIKU_RETURN_COLORING_ITEM_CONTENT = "DUNHUANGSHIKU_RETURN_COLORING_ITEM_CONTENT"; // 敦煌石窟回收颜料邮件内容

    public static final String LANRUOSI_ACTIVITY_ACHIEVEMENT_REWARD_TITLE = "LANRUOSI_ACTIVITY_ACHIEVEMENT_REWARD_TITLE";      //"兰若寺成就奖励补发";
    public static final String LANRUOSI_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT = "LANRUOSI_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT";  //"亲亲爱的掌柜，您在兰若寺活动中，有成就奖励未领取，现已补发，请查收！";

    public static final String YJXM_REMOVE_ITEM_TITLE = "YJXM_REMOVE_ITEM_TITLE";   //遇见小面联动材料回收
    public static final String YJXM_REMOVE_ITEM_CONTENT = "YJXM_REMOVE_ITEM_CONTENT";   //遇见小面联动材料回收


    public static final String AUTO_SEND_ACTIVITY_CROSS_RANK_REWARD_TITLE = "AUTO_SEND_ACTIVITY_CROSS_RANK_REWARD_TITLE";       //跨服活动榜单自动发奖邮件标题
    public static final String AUTO_SEND_ACTIVITY_CROSS_RANK_REWARD_CONTENT = "AUTO_SEND_ACTIVITY_CROSS_RANK_REWARD_CONTENT";   //跨服活动榜单自动发奖邮件内容

    public static final String GOURD_PLANT_ACTIVITY_ACHIEVEMENT_REWARD_TITLE = "GOURD_PLANT_ACTIVITY_ACHIEVEMENT_REWARD_TITLE";      //"葫芦山葫芦宝库奖励";
    public static final String GOURD_PLANT_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT = "GOURD_PLANT_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT";  //"亲亲爱的掌柜，葫芦山活动现已结束，葫芦宝库有您未被领取的奖励，现已补发，敬请查收！";

    public static final String AUTO_USE_ABLE_ITEM_TITLE = "AUTO_USE_ABLE_ITEM_TITLE"; // 活动参与资格告知
    public static final String AUTO_USE_ABLE_ITEM_CONTENT = "AUTO_USE_ABLE_ITEM_CONTENT"; // 亲爱的掌柜，您的{0}×{1}已自动转化为本期{2}参与资格，请前往活动页面进行确认。

    public static final String AUTO_ADD_ABLE_ITEM_TITLE = "AUTO_ADD_ABLE_ITEM_TITLE"; // 活动参与凭证自动发放
    public static final String AUTO_ADD_ABLE_ITEM_CONTENT = "AUTO_ADD_ABLE_ITEM_CONTENT"; // 亲爱的掌柜，您邮件中的{0}×{1}已自动发放至背包内，敬请查收！

    public static final String MONOPOLY_MARKET_OFFICE_ROBBED_TITLE = "MONOPOLY_MARKET_OFFICE_ROBBED_TITLE";      // 榷场位置被抢夺邮件标题
    public static final String MONOPOLY_MARKET_OFFICE_ROBBED_CONTENT = "MONOPOLY_MARKET_OFFICE_ROBBED_CONTENT";  // 榷场位置被抢夺邮件内容

    public static final String MONOPOLY_MARKET_RES_GRAB_ROBBED_TITLE = "MONOPOLY_MARKET_RES_GRAB_ROBBED_TITLE";      // 榷场位置被抢夺邮件标题
    public static final String MONOPOLY_MARKET_RES_GRAB_ROBBED_CONTENT = "MONOPOLY_MARKET_RES_GRAB_ROBBED_CONTENT";  // MONOPOLY_MARKET_RES_GRAB_ROBBED_CONTENT

    public static final String MONOPOLY_MARKET_OFFICE_REWARD_TITLE = "MONOPOLY_MARKET_OFFICE_REWARD_TITLE";      // 榷场榷署奖励标题
    public static final String MONOPOLY_MARKET_OFFICE_REWARD_CONTENT = "MONOPOLY_MARKET_OFFICE_REWARD_CONTENT";  // 榷场榷署奖励内容

    public static final String WINTER_LOVE_AUTO_SEND_COMB_REWARD_TITLE = "WINTER_LOVE_AUTO_SEND_COMB_REWARD_TITLE";     //冬季恋歌圣诞树装扮奖励补发标题
    public static final String WINTER_LOVE_AUTO_SEND_BLESS_REWARD_TITLE = "WINTER_LOVE_AUTO_SEND_BLESS_REWARD_TITLE";       //冬季恋歌圣诞许愿树奖励补发标题
    public static final String WINTER_LOVE_AUTO_SEND_COMB_REWARD_CONTENT="WINTER_LOVE_AUTO_SEND_COMB_REWARD_CONTENT";       //冬季恋歌圣诞树装扮奖励补发内容
    public static final String WINTER_LOVE_AUTO_SEND_BLESS_REWARD_CONTENT="WINTER_LOVE_AUTO_SEND_BLESS_REWARD_CONTENT";      //冬季恋歌圣诞许愿树奖励补发内容
    public static final String ACTIVITY_DISPERSE_GOLD_WINTER_LOVE_REWARD_TITLE = "ACTIVITY_DISPERSE_GOLD_WINTER_LOVE_REWARD_TITLE";                      //冬季恋歌送财标题
    public static final String ACTIVITY_DISPERSE_GOLD_WINTER_LOVE_REWARD_CONTENT = "ACTIVITY_DISPERSE_GOLD_WINTER_LOVE_REWARD_CONTENT";                 //冬季恋歌送财内容          亲爱的掌柜，您的本次冬季恋歌中共有{0}名掌柜收到，送出银两×{1}、圣诞袜×{2}。


    public static final String HELL_ACTIVITY_REWARD_TITLE = "HELL_ACTIVITY_REWARD_TITLE";      // 地府断案功德莲台奖励
    public static final String HELL_ACTIVITY_REWARD_CONTENT = "HELL_ACTIVITY_REWARD_CONTENT";  // 亲爱的掌柜，地府断案活动现已结束，功德莲台有您未被领取的奖励，先已补发，敬请查收

    public static final String YJSY_REMOVE_ITEM_TITLE = "YJSY_REMOVE_ITEM_TITLE";           //阳际山野联动材料回收邮件标题
    public static final String YJSY_REMOVE_ITEM_CONTENT = "YJSY_REMOVE_ITEM_CONTENT";       //阳际山野联动材料回收邮件内容

    public static final String SHREK_ACTIVITY_REWARD_TITLE = "SHREK_ACTIVITY_REWARD_TITLE"; //史瑞克学院学院成就奖励补发标题
    public static final String SHREK_ACTIVITY_REWARD_CONTENT = "SHREK_ACTIVITY_REWARD_CONTENT";//史瑞克学院学院成就奖励补发内容

    public static final String VILLAINVALLEY_ACTIVITY_REWARD_TITLE = "VILLAINVALLEY_ACTIVITY_REWARD_TITLE"; //恶人谷武馆成就奖励补发
    public static final String VILLAINVALLEY_ACTIVITY_REWARD_CONTENT = "VILLAINVALLEY_ACTIVITY_REWARD_CONTENT";//亲爱的掌柜，您在恶人谷武馆活动中，有武馆成就奖励未领取，现已补发，请查收！

    public static final String CSZLJLBF_ITEM_TITLE = "CSZLJLBF_ITEM_TITLE"; //财神赠礼补发标题
    public static final String CSZLJLBF_ITEM_CONTENT = "CSZLJLBF_ITEM_CONTENT"; //财神赠礼补发内容

    public static final String OLD_PLAYER_RETURN_BIND_REWARD_TITLE = "OLD_PLAYER_RETURN_BIND_REWARD_TITLE";     //重归汴梁绑定每日返还奖励邮件标题
    public static final String OLD_PLAYER_RETURN_BIND_REWARD_CONTENT = "OLD_PLAYER_RETURN_BIND_REWARD_CONTENT"; //重归汴梁绑定每日返还奖励邮件内容
    public static final String OLD_PLAYER_RETURN_CONDITION_REWARD_TITLE = "OLD_PLAYER_RETURN_CONDITION_REWARD_TITLE";  //重归汴梁任务奖励补发邮件内容
    public static final String OLD_PLAYER_RETURN_CONDITION_REWARD_CONTENT = "OLD_PLAYER_RETURN_CONDITION_REWARD_CONTENT";  //重归汴梁任务奖励补发邮件内容

    public static final String OLD_PLAYER_RETURN_NEWWORD_REWARD_TITLE = "OLD_PLAYER_RETURN_NEWWORD_REWARD_TITLE";
    public static final String OLD_PLAYER_RETURN_NEWWORD_REWARD_CONTENT = "OLD_PLAYER_RETURN_NEWWORD_REWARD_CONTENT";


    public static final String SHUIHUYEZICARD_ACTIVITY_ACHIEVEMENT_REWARD_TITLE = "SHUIHUYEZICARD_ACTIVITY_ACHIEVEMENT_REWARD_TITLE";      //"水浒叶子牌成就奖励补发";
    public static final String SHUIHUYEZICARD_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT = "SHUIHUYEZICARD_ACTIVITY_ACHIEVEMENT_REWARD_CONTENT";  //"亲亲爱的掌柜，您在水浒叶子牌活动中，有成就奖励未领取，现已补发，请查收！";

    public static final String SEACRAFT_REMOVE_ITEM_TITLE = "SEACRAFT_REMOVE_ITEM_TITLE";      //"海上争霸 南海丝路道具回收标题  ";
    public static final String SEACRAFT_REMOVE_ITEM_CONTENT = "SEACRAFT_REMOVE_ITEM_CONTENT";  //"海上争霸 南海丝路道具回收内容 亲爱的掌柜，由于您在活动期间，{0}x{1}未使用，现已将其回收，附件为获得奖励，敬请查收！";
    public static final String PALACE_POS_REWARD_TITLE = "PALACE_POS_REWARD_TITLE";      //"皇城每日职位岁贡";
    public static final String PALACE_POS_REWARD_CONTENT = "PALACE_POS_REWARD_CONTENT";  //"亲爱的掌柜，您在皇城任职【大商公】的岁贡现已发放（幕宾额外加成X个），预祝您在皇城中一展宏图。";
    public static final String PALACE_AIDE_REWARD_TITLE = "PALACE_AIDE_REWARD_TITLE";      //"皇城幕宾每日岁贡";
    public static final String PALACE_AIDE_REWARD_CONTENT = "PALACE_AIDE_REWARD_CONTENT";  //"亲爱的掌柜，您身为【大商公】幕宾的岁贡现已发放，预祝您与您辅佐的【大商公】在皇城中一展宏图。";
    public static final String PALACE_POS_CHANGE_TITLE = "PALACE_POS_CHANGE_TITLE";      //"皇城位置变更通知";
    public static final String PALACE_POS_CHANGE_CONTENT = "PALACE_POS_CHANGE_CONTENT";  //"【财源滚滚XX服】【XX二等小财主】玩家名字六字大展手脚与你竞争【大商公】一职，你的职位被降为【从商尚书】。详情可前往乔迁系统内查看。";
    public static final String PALACE_POS_EXPEL_TITLE = "PALACE_POS_EXPEL_TITLE";      //"皇城位置变更通知";
    public static final String PALACE_POS_EXPEL_CONTENT = "PALACE_POS_EXPEL_CONTENT";  //"【财源滚滚XX服】【XX二等小财主】玩家名字六字大展手脚与你竞争【大商公】一职，你被逐出皇城。详情可前往乔迁系统内查看。";
    public static final String PALACE_AIDE_DISMISS_TITLE = "PALACE_AIDE_DISMISS_TITLE";      //"幕宾身份变更";
    public static final String PALACE_AIDE_DISMISS_CONTENT = "PALACE_AIDE_DISMISS_CONTENT";  //"亲爱的掌柜，您身为【大商公】幕宾的身份被【财源滚滚XX服】【XX二等小财主】玩家名字六字遣散。详情可前往乔迁系统内查看。";
    public static final String PALACE_AIDE_SYSTEM_DISMISS_TITLE = "PALACE_AIDE_SYSTEM_DISMISS_TITLE";      //"幕宾身份变更";
    public static final String PALACE_AIDE_SYSTEM_DISMISS_CONTENT = "PALACE_AIDE_SYSTEM_DISMISS_CONTENT";  //"亲爱的掌柜，您身为【大商公】幕宾的身份由于【财源滚滚XX服】【XX二等小财主】玩家的职位变更导致幕宾容纳人数不足所以被遣散。详情可前往乔迁系统内查看。";


    public static final String SEACRAFT_ACHIEVEMENT_TITLE = "SEACRAFT_ACHIEVEMENT_TITLE";      //"海上争霸成就补发";
    public static final String SEACRAFT_ACHIEVEMENT_CONTENT = "SEACRAFT_ACHIEVEMENT_CONTENT";  //"亲爱的掌柜，海上争霸活动现已结束，你的成就奖励中有未被领取的奖励，现已补发，敬请查收！";

    public static final String CHINESE_CHESS_ACTIVITY_AUTO_REWARD_TITLE = "CHESS_ACTIVITY_AUTO_REWARD_TITLE";     //中国象棋自动补发奖励
    public static final String CHINESE_CHESS_ACTIVITY_AUTO_REWARD_CONTENT = "CHESS_ACTIVITY_AUTO_REWARD_CONTENT";

    public static final String TWINS_ACTIVITY_AUTO_REWARD_TITLE = "TWINS_ACTIVITY_AUTO_REWARD_TITLE";     //绝代双骄自动补发奖励
    public static final String TWINS_ACTIVITY_AUTO_REWARD_CONTENT = "TWINS_ACTIVITY_AUTO_REWARD_CONTENT";

    public static final String CHESS_ACTIVITY_OVER_GAME_REWARD_TITLE = "CHESS_ACTIVITY_OVER_GAME_REWARD_TITLE";     //中国象棋活动结束未完成的对局奖励
    public static final String CHESS_ACTIVITY_OVER_GAME_REWARD_CONTENT = "CHESS_ACTIVITY_OVER_GAME_REWARD_CONTENT";
    public static final String SHUSHAN_ACHIEVEMENT_TITLE = "SHUSHAN_ACHIEVEMENT_TITLE";      //"蜀山成就补发";
    public static final String SHUSHAN_ACHIEVEMENT_CONTENT = "SHUSHAN_ACHIEVEMENT_CONTENT";  //"亲爱的掌柜，蜀山活动现已结束，你的成就奖励中有未被领取的奖励，现已补发，敬请查收！";


    public static final String ZHOUNIAN_TURNTABLE_REWARD_TITLE = "ZHOUNIAN_TURNTABLE_REWARD_TITLE";  //"金玉宝盘活动";
    public static final String ZHOUNIAN_TURNTABLE_REWARD_CONTENT = "ZHOUNIAN_TURNTABLE_REWARD_CONTENT";  //"金玉宝盘活动回收";

    public static final String TONG_BING_ZHAN_GONG_TITLE = "TONG_BING_ZHAN_GONG_TITLE";
    public static final String TONG_BING_ZHAN_GONG_CONTENT = "TONG_BING_ZHAN_GONG_CONTENT";
    public static final String TON_BING_ZHAN_GONG_TITLE = "TON_BING_ZHAN_GONG_TITLE";
    public static final String TON_BING_ZHAN_GONG_CONTENT = "TON_BING_ZHAN_GONG_CONTENT";
    public static final String CTON_BING_ZHAN_GONG_TITLE = "CTON_BING_ZHAN_GONG_TITLE";
    public static final String CTON_BING_ZHAN_GONG_CONTENT = "CTON_BING_ZHAN_GONG_CONTENT";
    public static final String WINGROOM_VISIT_GUEST_TITLE = "WINGROOM_VISIT_GUEST_TITLE"; //" 厢房拜访";
    public static final String WINGROOM_VISIT_GUEST_CONTENT = "WINGROOM_VISIT_GUEST_CONTENT"; //"掌柜，我今天拜访了{0}{1}的厢房，被热情招待了，临走时还给了我许多礼物，托我带给掌柜您呢！";

    public static final String WINGROOM_VISIT_OWNER_TITLE = "WINGROOM_VISIT_OWNER_TITLE"; //" 厢房拜访";
    public static final String WINGROOM_VISIT_OWNER_CONTENT = "WINGROOM_VISIT_OWNER_CONTENT"; //"掌柜，我已经结束在你家的拜访啦，我给掌柜留下了一些小礼物喔，敬请领取。";
    public static final String OPERA_MASK_AUTO_SEND_SING_LEVEL_TITLE = "OPERA_MASK_AUTO_SEND_SING_LEVEL_TITLE"; // 畅音阁补发唱功奖励标题
    public static final String OPERA_MASK_AUTO_SEND_SING_LEVEL_CONTENT = "OPERA_MASK_AUTO_SEND_SING_LEVEL_CONTENT"; // 畅音阁补发唱功奖励内容

    public static final String OPERA_MASK_AUTO_END_SCENE_REWARD_TITLE = "OPERA_MASK_AUTO_END_SCENE_REWARD_TITLE"; // 畅音阁补发剧目结束奖励标题
    public static final String OPERA_MASK_AUTO_END_SCENE_REWARD_CONTENT = "OPERA_MASK_AUTO_END_SCENE_REWARD_CONTENT"; // 畅音阁补发剧目结束奖励内容
    public static final String TONGTIAN_MAIL_TITLE_ITEM_RECOVER = "TONGTIAN_MAIL_TITLE_ITEM_RECOVER";   //通天塔活动
    public static final String TONGTIAN_MAIL_CONTENT_ITEM_RECOVER = "TONGTIAN_MAIL_CONTENT_ITEM_RECOVER"; //亲爱的掌柜，由于您在通天塔活动中，灵石×{0} 未及时使用，现已为您自动转换为活动积分{1}，敬请查收！

    public static final String TONGTIAN_MAIL_TITLE_PROGRESS_REWORD = "TONGTIAN_MAIL_TITLE_PROGRESS_REWORD";     //通天塔进度奖励补发
    public static final String TONGTIAN_MAIL_CONTENT_PROGRESS_REWORD = "TONGTIAN_MAIL_CONTENT_PROGRESS_REWORD"; //亲爱的掌柜，您在通天塔活动中还有未领取的进度奖励，现已补发，敬请查收。

    public static final String TIANGONG_MAIL_TITLE_PROGRESS_REWORD = "TIANGONG_MAIL_TITLE_PROGRESS_REWORD";     //大闹天宫进度奖励补发
    public static final String TIANGONG_MAIL_CONTENT_PROGRESS_REWORD = "TIANGONG_MAIL_CONTENT_PROGRESS_REWORD"; //亲爱的掌柜，您在大闹天宫活动中还有未领取的进度奖励，现已补发，敬请查收。

    public static final String GOLD_TOKEN_RECHARGE_TITLE = "GOLD_TOKEN_RECHARGE_TITLE";     //掌櫃通寶領取
    public static final String GOLD_TOKEN_RECHARGE_CONTENT = "GOLD_TOKEN_RECHARGE_CONTENT"; //親愛的掌櫃：小二已將您兌換的通寶送上門了，請掌櫃進行簽收，祝掌櫃每日生意興隆，財源滾滾。

    // 通用成就补发邮件
    public static final String AUTO_SEND_ACTIVITY_CONDITION_REWARD_TITLE = "AUTO_SEND_ACTIVITY_CONDITION_REWARD_TITLE";     // {}进度奖励补发
    public static final String AUTO_SEND_ACTIVITY_CONDITION_REWARD_CONTENT = "AUTO_SEND_ACTIVITY_CONDITION_REWARD_CONTENT"; // 亲爱的掌柜，您在{}活动中还有未领取的进度奖励，现已补发，敬请查收。

    public static final String PASTURE_ACTIVITY_AUTO_REWARD_TITLE = "PASTURE_ACTIVITY_AUTO_REWARD_TITLE";     // 牧场点兵补发奖励标题
    public static final String PASTURE_ACTIVITY_AUTO_REWARD_CONTENT = "PASTURE_ACTIVITY_AUTO_REWARD_CONTENT"; // 牧场点兵补发奖励内容
    public static final String TOMB_RELIC_RANK_REWARD_TITLE = "TOMB_RELIC_RANK_REWARD_TITLE";       //秦始皇陵遗物成就
    public static final String TOMB_RELIC_RANK_REWARD_CONTENT = "TOMB_RELIC_RANK_REWARD_CONTENT";   //由于您在秦始皇陵活动中有未领取的遗物成就奖励，现已为您补发奖励，请查收！
    public static final String TOMB_CLAY_RECYCLE_TITLE = "TOMB_CLAY_RECYCLE_TITLE";                 //秦始皇陵黏土回收
    public static final String TOMB_CLAY_RECYCLE_CONTENT = "TOMB_CLAY_RECYCLE_CONTENT";             //由于您在秦始皇陵活动中有{0}块兵佣黏土未使用，现已为您使用并补发奖励，请查收！
    public static final String TOMB_CLAY_RANK_REWARD_TITLE = "TOMB_CLAY_RANK_REWARD_TITLE";         //秦始皇陵兵俑再世商会成就
    public static final String TOMB_CLAY_RANK_REWARD_CONTENT = "TOMB_CLAY_RANK_REWARD_CONTENT";     //由于您在秦始皇陵活动中有未领取的兵俑再世商会成就奖励，现已为您补发奖励，请查收！
    public static final String TOMB_PERSONAL_RANK_REWARD_TITLE = "TOMB_PERSONAL_RANK_REWARD_TITLE"; //秦始皇陵排行补偿
    public static final String TOMB_PERSONAL_RANK_REWARD_CONTENT = "TOMB_PERSONAL_RANK_REWARD_CONTENT"; //由于您在秦始皇陵-个人排行获得第{0}名的排行奖励未领取，现已为您补发，请查收！
    public static final String TOMB_UNION_RANK_REWARD_TITLE = "TOMB_UNION_RANK_REWARD_TITLE";       //秦始皇陵排行补偿
    public static final String TOMB_UNION_RANK_REWARD_CONTENT = "TOMB_UNION_RANK_REWARD_CONTENT";       //由于您在秦始皇陵-商会排行获得第{0}名的排行奖励未领取，现已为您补发，请查收！

    public static final String GREAT_TRADE_MAIL_TITLE_PROGRESS_REWORD = "GREAT_TRADE_MAIL_TITLE_PROGRESS_REWORD";
    public static final String GREAT_TRADE_MAIL_CONTENT_PROGRESS_REWORD = "GREAT_TRADE_MAIL_CONTENT_PROGRESS_REWORD";

    public static final String COMMON_RECYCLE_REMOVE_ITEM_TITLE = "COMMON_RECYCLE_REMOVE_ITEM_TITLE";      //"活动道具回收标题 {0}道具回收标题  ";
    public static final String COMMON_RECYCLE_REMOVE_ITEM_CONTENT = "COMMON_RECYCLE_REMOVE_ITEM_CONTENT";  //"活动道具回收内容 亲爱的掌柜，由于您在活动期间，{0}x{1}未使用，现已将其回收，附件为获得奖励，敬请查收！";

    public static final String MINI_GAME_AD_REWARD_TITLE = "MINI_GAME_AD_REWARD_TITLE";      //小游戏广告奖励标题
    public static final String MINI_GAME_AD_REWARD_CONTENT = "MINI_GAME_AD_REWARD_CONTENT";  //小游戏广告奖励内容

    public static final String SYSTEM_ADMIN = "系统管理员";

    public static final String SYSTEM_MAIL = "系统消息";

    public static final String WORLDCUP_ACTIVITY_AUTO_REWARD_TITLE = "WORLDCUP_ACTIVITY_AUTO_REWARD_TITLE";//{0}活动
    // 汴梁世界杯未参赛球员转积分  亲爱的掌柜，由于您在{0}活动中，{1}×{2}、{3}×{4}、{5}×{6}、{7}×{8}未及时参赛，现已为您自动转换为{9}，敬请查收！
    public static final String WORLDCUP_ACTIVITY_AUTO_REWARD_CONTENT = "WORLDCUP_ACTIVITY_AUTO_REWARD_CONTENT";

    public static final String PEAKSEACRAFT_REMOVE_ITEM_TITLE = "PEAKSEACRAFT_REMOVE_ITEM_TITLE";      //"海上争霸 南海丝路道具回收标题  ";
    public static final String PEAKSEACRAFT_REMOVE_ITEM_CONTENT = "PEAKSEACRAFT_REMOVE_ITEM_CONTENT";  //"海上争霸 南海丝路道具回收内容 亲爱的掌柜，由于您在活动期间，{0}未使用，现已将其回收，附件为获得奖励，敬请查收！"

    public static final String CRICKET_FIGHT_REWARD_TITLE = "CRICKET_FIGHT_REWARD_TITLE";      //"斗促织";

    public static final String CRICKET_FIGHT_REWARD_CONTENT = "CRICKET_FIGHT_REWARD_CONTENT";      //"亲爱的掌柜，您在本次【学者场】分组中，获得第10名，以下是您的奖励，请查收！";


    public static final String CRICKET_FIGHT_BACK_REWARD_TITLE = "CRICKET_FIGHT_BACK_REWARD_TITLE";      //"道具回收";

    public static final String CRICKET_FIGHT_BACK_REWARD_CONTENT = "CRICKET_FIGHT_BACK_REWARD_CONTENT";      //"斗蛐蛐道具回收";


    public static final String CRICKET_FIGHT_TOKEN_REWARD_TITLE = "CRICKET_FIGHT_TOKEN_REWARD_TITLE";      //"促织战令";

    public static final String CRICKET_FIGHT_TOKEN_REWARD_CONTENT = "CRICKET_FIGHT_TOKEN_REWARD_CONTENT";  // 亲爱的掌柜，您在本轮促织战令中仍有未领取的进度奖励，现已补发，敬请查收！

    public static final String MALL_VOUCHER_REPEAT_BUY_TITLE = "MALL_VOUCHER_REPEAT_BUY_TITLE"; //"重复购买商品返还元宝";
    public static final String MALL_VOUCHER_REPEAT_BUY_CONTENT = "MALL_VOUCHER_REPEAT_BUY_CONTENT"; //"由于您重复下单购买商品{0}，现将购买金额直接兑换为元宝返还给您";

    public static final String SHANGBANG_RANK_REWARD_TITLE = "SHANGBANG_RANK_REWARD_TITLE";//
    public static final String SHANGBANG_RANK_REWARD_CONTENT = "SHANGBANG_RANK_REWARD_CONTENT";//


    public static final String WASHEPVP_SHARE_REWARD_TITLE = "WASHEPVP_SHARE_REWARD_TITLE";         //"掌柜夺魁新人奖励";
    public static final String WASHEPVP_SHARE_REWARD_CONTENT = "WASHEPVP_SHARE_REWARD_CONTENT";   //"欢迎掌柜来到汴梁城，我们为您准备了一份游戏好礼，感谢掌柜对游戏的支持，祝您游戏愉快。";

    public static final String KUANG_RANK_REWARD_TITLE = "KUANG_RANK_REWARD_TITLE";      //"矿场争夺战排行奖励补发";

    public static final String KUANG_RANK_REWARD_CONTENT = "KUANG_RANK_REWARD_CONTENT";      //"亲爱的掌柜，您在矿场争夺战活动中有奖励未能及时领取，现已补发，敬请查收！";

    public static final String KUANG_ACHIEVE_REWARD_TITLE = "KUANG_ACHIEVE_REWARD_TITLE";      //"矿场争夺战成就奖励补发";

    public static final String KUANG_ACHIEVE_REWARD_CONTENT = "KUANG_ACHIEVE_REWARD_CONTENT";      //"亲爱的掌柜，您在矿场争夺战活动中有奖励未能及时领取，现已补发，敬请查收！";

    public static final String BANQUET_AUTO_OPEN = "BANQUET_AUTO_OPEN";
    public static final String BANQUET_AUTO_OPEN_ITEM_RETURN = "BANQUET_AUTO_OPEN_ITEM_RETURN";
    public static final String MONOPOLYMARKEYT_RANK_REWARD_TITLE = "MONOPOLYMARKEYT_RANK_REWARD_TITLE";

    public static final String MONOPOLYMARKEYT_RANK_REWARD_CONTENT = "MONOPOLYMARKEYT_RANK_REWARD_CONTENT";

    public static final String NEWMONOPOLY_MARKET_END_REWARD_TITLE = "NEWMONOPOLY_MARKET_END_REWARD_TITLE";
    public static final String NEWMONOPOLY_MARKET_END_REWARD_CONTENT = "NEWMONOPOLY_MARKET_END_REWARD_CONTENT";

    //总的
    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE = "MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE"; //"宴会随礼返还";
    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT = "MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT"; //"亲爱的掌柜，本次自动回宴中，薄礼回宴会{0}次；豪礼回宴{1}次；厚礼随宴{2}次。以下是未进行随礼的道具，现已返还，敬请查收！";

    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE1 = "MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE1"; //"宴会随礼返还";
    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT1 = "MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT1"; //"亲爱的掌柜，本次自动回宴中，薄礼回宴会{0}次。以下是未进行随礼的道具，现已返还，敬请查收！";

    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE2 = "MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE2"; //"宴会随礼返还";
    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT2 = "MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT2"; //"亲爱的掌柜，本次自动回宴中，豪礼回宴{0}次。以下是未进行随礼的道具，现已返还，敬请查收！";

    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE3 = "MALL_BANQUET_AUTO_JOIN_CANCEL_TITLE3"; //"宴会随礼返还";
    public static final String MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT3 = "MALL_BANQUET_AUTO_JOIN_CANCEL_CONTENT3"; //"亲爱的掌柜，本次自动回宴中，厚礼随宴{0}次。以下是未进行随礼的道具，现已返还，敬请查收！";

    public static final String MALL_BANQUET_AUTO_JOIN_INTEGRAL_TITLE = "MALL_BANQUET_AUTO_JOIN_INTEGRAL_TITLE"; //"宴会积分邮件";
    public static final String MALL_BANQUET_AUTO_JOIN_INTEGRAL_CONTENT = "MALL_BANQUET_AUTO_JOIN_INTEGRAL_CONTENT"; //"亲爱的掌柜，本次自动回宴中，获得了宴会积分，敬请查收！";

    public static final String DAY_RECHARGE_REWARD_TITLE = "DAY_RECHARGE_REWARD_TITLE"; //"{0}充值奖励补发";
    public static final String DAY_RECHARGE_REWARD_DESC = "DAY_RECHARGE_REWARD_DESC"; //"未能及时领取{0},哒哒哒哒哒";

    public static final String QIXI_MAIL_TITLE = "QIXI_MAIL_TITLE";
    public static final String QIXI_MAIL_CONTENT = "QIXI_MAIL_CONTENT"; //亲爱的掌柜，您在赠花活动中未使用的{0}，已自动转化为道具，敬请查收。
    public static final String QIXI_MAIL_CONTENT_1 = "QIXI_MAIL_CONTENT_1"; //亲爱的掌柜，您在赠花活动中未领取的礼物，已自动转化为道具，敬请查收。
    public static final String GUAGIFTS_MAIL_TITLE = "GUAGIFTS_MAIL_TITLE";
    public static final String GUAGIFTS_MAIL_CONTENT = "GUAGIFTS_MAIL_CONTENT"; //亲爱的掌柜，您在赠花活动中未使用的{0}，已自动转化为道具，敬请查收。
    public static final String GUAGIFTS_MAIL_CONTENT_1 = "GUAGIFTS_MAIL_CONTENT_1"; //亲爱的掌柜，您在赠花活动中未领取的礼物，已自动转化为道具，敬请查收。


    public static final String LUCKYSHOP_MALL_TITLE = "LUCKYSHOP_MALL_TITLE"; //锦鲤礼包

    public static final String LUCKYSHOP_MALL_CONTENT = "LUCKYSHOP_MALL_CONTENT"; //锦鲤礼包内容

    public static final String STONESOUL_MAIL_TITLE = "STONESOUL_MAIL_TITLE";  // 石碑注魂补发
    public static final String STONESOUL_MAIL_CONTENT = "STONESOUL_MAIL_CONTENT"; // 石碑注魂补发邮件文本内容

    public static final String BEAUTY_ESCORT_EXP_FULL_TRANSFORM_TITLE = "BEAUTY_ESCORT_EXP_FULL_TRANSFORM_TITLE";  // 美女才艺值溢出经验道具转换
    public static final String BEAUTY_ESCORT_EXP_FULL_TRANSFORM_CONTENT = "BEAUTY_ESCORT_EXP_FULL_TRANSFORM_CONTENT"; // 美女才艺值溢出经验道具转换

    public static final String SNOW_GARDEN_MAIL_TITLE_1_1 = "SNOW_GARDEN_MAIL_TITLE_1_1";           //游园筹办基金过期
    public static final String SNOW_GARDEN_MAIL_CONTENT_1_1 = "SNOW_GARDEN_MAIL_CONTENT_1_1";       //亲爱的掌柜，由于该活动过期，您在冰雪游园会-游园筹办中的基金奖励未领取的{0}，现已自动转化为积分，敬请查收！

    public static final String SNOW_GARDEN_MAIL_TITLE_1_2 = "SNOW_GARDEN_MAIL_TITLE_1_2";           //宾客如云基金过期
    public static final String SNOW_GARDEN_MAIL_CONTENT_1_2 = "SNOW_GARDEN_MAIL_CONTENT_1_2";       //亲爱的掌柜，由于该活动过期，您在冰雪游园会-宾客如云中的基金奖励未领取的{0}，现已自动转化为积分，敬请查收！

    public static final String SNOW_GARDEN_MAIL_TITLE_2 = "SNOW_GARDEN_MAIL_TITLE_2";           //{0}优惠礼包返利道具
    public static final String SNOW_GARDEN_MAIL_CONTENT_2 = "SNOW_GARDEN_MAIL_CONTENT_2";       //亲爱的掌柜，您在冰雪游园会-{0}中的优惠礼包返利，未领取的{1}，已补发，敬请查收

    public static final String MAIL_TOKENS_REISSUE_TITLE = "MAIL_TOKENS_REISSUE_TITLE";       //通宝补发通知
    public static final String MAIL_TOKENS_REISSUE_CONTENT = "MAIL_TOKENS_REISSUE_CONTENT";    //通宝补发内容

    public static final String MAIL_TOKENS_DEDUCT_TITLE = "MAIL_TOKENS_DEDUCT_TITLE";    //通宝扣除通知
    public static final String MAIL_TOKENS_DEDUCT_CONTENT = "MAIL_TOKENS_DEDUCT_CONTENT";    //通宝扣除内容

    public static final String SUITANG_MAIL_TITLE_FOOD_REWORD = "SUITANG_MAIL_TITLE_FOOD_REWORD";    //逐鹿隋唐军资奖励
    public static final String SUITANG_MAIL_CONTENT_FOOD_REWORD = "SUITANG_MAIL_CONTENT_FOOD_REWORD";    //尊敬的掌柜，今日您在逐鹿隋唐中未征收的军资，末将已在附件中呈上，敬请查收！


    public static final String MEITUANDINNER_MAIL_TITLE = "MEITUANDINNER_MAIL_TITLE";    //美团代金券使用提醒
    public static final String MEITUANDINNER_MAIL_CONTENT = "MEITUANDINNER_MAIL_CONTENT";    //亲爱的掌柜，你获得了代金券，赶紧用

    public static final String MEITUANDINNER_MAIL_TITLE_1 = "MEITUANDINNER_MAIL_TITLE_1";    //美团代金券过期提醒标题
    public static final String MEITUANDINNER_MAIL_CONTENT_1 = "MEITUANDINNER_MAIL_CONTENT_1";    //美团代金券过期提醒内容

    public static final String MEITUANDINNER_MAIL_TITLE_2 = "MEITUANDINNER_MAIL_TITLE_2";    //美团代金券回收标题
    public static final String MEITUANDINNER_MAIL_CONTENT_2 = "MEITUANDINNER_MAIL_CONTENT_2";    //美团代金券回收内容

    public static final String NINECHESS_SUPPORT_TITLE = "NINECHESS_SUPPORT_TITLE";    // 声援结果
    public static final String NINECHESS_SUPPORT_CONTENT_1 = "NINECHESS_SUPPORT_CONTENT_1";    // 声援成功邮件内容
    public static final String NINECHESS_SUPPORT_CONTENT_2 = "NINECHESS_SUPPORT_CONTENT_2";    // 声援未获前四内容
    public static final String NINECHESS_SUPPORT_TITLE_1 = "NINECHESS_SUPPORT_TITLE_1";    // 声援奖励
    public static final String NINECHESS_SUPPORT_CONTENT_3 = "NINECHESS_SUPPORT_CONTENT_3";    // 自己拿奖励的文本

    public static final String SUITANG_MAIL_TITLE_CITY_MOVE_ITEM_RETURN = "SUITANG_MAIL_TITLE_CITY_MOVE_ITEM_RETURN";  // 逐鹿隋唐返还元宝
    public static final String SUITANG_MAIL_CONTENT_CITY_MOVE_ITEM_RETURN = "SUITANG_MAIL_CONTENT_CITY_MOVE_ITEM_RETURN"; // 尊敬的掌柜，您在逐鹿隋唐活动中存入了自动加速的元宝，以下返还尚未使用的元宝，请查收！

    public static final String SUMMER_GAMES_MAIL_TITLE_1 = "SUMMER_GAMES_MAIL_TITLE_1";
    public static final String SUMMER_GAMES_CONTENT_1 = "SUMMER_GAMES_CONTENT_1";

    public static final String SUMMER_GAMES_MAIL_TITLE_2 = "SUMMER_GAMES_MAIL_TITLE_2";
    public static final String SUMMER_GAMES_CONTENT_2 = "SUMMER_GAMES_CONTENT_2";

    public static final String SUMMER_GAMES_MAIL_TITLE_3 = "SUMMER_GAMES_MAIL_TITLE_3";
    public static final String SUMMER_GAMES_CONTENT_3 = "SUMMER_GAMES_CONTENT_3";

    public static final String SUMMER_GAMES_MAIL_TITLE_4 = "SUMMER_GAMES_MAIL_TITLE_4";
    public static final String SUMMER_GAMES_CONTENT_4 = "SUMMER_GAMES_CONTENT_4";

    public static final String SUMMER_GAMES_MAIL_TITLE_5 = "SUMMER_GAMES_MAIL_TITLE_5";
    public static final String SUMMER_GAMES_CONTENT_5 = "SUMMER_GAMES_CONTENT_5";

    public static final String SUMMER_GAMES_MAIL_TITLE_6 = "SUMMER_GAMES_MAIL_TITLE_6";
    public static final String SUMMER_GAMES_CONTENT_6 = "SUMMER_GAMES_CONTENT_6";

    public static final String SUMMER_GAMES_MAIL_TITLE_7 = "SUMMER_GAMES_MAIL_TITLE_7";
    public static final String SUMMER_GAMES_CONTENT_7 = "SUMMER_GAMES_CONTENT_7";
    public static final String SON_HAI_REGION_RESET_REWARD_TITLE = "SON_HAI_REGION_RESET_REWARD_TITLE";    // 山海伏兽-区域重置未领取奖励邮件发送
    public static final String SON_HAI_REGION_RESET_REWARD_CONTENT = "SON_HAI_REGION_RESET_REWARD_CONTENT";    // 山海伏兽-区域重置未领取奖励邮件发送

    public static final String SON_HAI_BF_EGG_REWARD_TITLE = "SON_HAI_BF_EGG_REWARD_TITLE";    // 山海伏兽-补发蛋蛋奖励
    public static final String SON_HAI_BF_EGG_REWARD_CONTENT = "SON_HAI_BF_EGG_REWARD_CONTENT";    // 山海伏兽-补发蛋蛋奖励

    public static final String COMMON_BAG_REISSUE_MAIL_TITLE_1 = "COMMON_BAG_REISSUE_MAIL_TITLE_1";    //{0}打理背包补发
    public static final String COMMON_BAG_REISSUE_MAIL_CONTENT_1 = "COMMON_BAG_REISSUE_MAIL_CONTENT_1";//亲爱的掌柜，您在{0}中有未领取的打理背包奖励，现为您补发，请查收。

    public static final String GASHAPON_INGOT_REBATE_CONTENT = "GASHAPON_INGOT_REBATE_CONTENT"; // 亲爱的掌柜，您在{0}活动中还有未领取的返利奖励，现已补发，敬请查收。
    public static final String FUND_EXPIRE_MAIL_TITLE = "FUND_EXPIRE_MAIL_TITLE";//基金过期
    public static final String FUND_EXPIRE_MAIL_CONTENT = "FUND_EXPIRE_MAIL_CONTENT";//亲爱的掌柜，由于您在{0}活动中，基金未及时使用，现已补发，敬请查收!

    public static final String GROUP_BUY_MAIL_TITLE = "GROUP_BUY_MAIL_TITLE";//{0}全服团购道具
    public static final String GROUP_BUY_MAIL_CONTENT = "GROUP_BUY_MAIL_CONTENT";//亲爱的案柜，您在{0}中的全服团购，未领取的{1}，现已补发，敬请查收!

    public static final String TRAVEL_CARD_RECYCLE_TITLE = "TRAVEL_CARD_RECYCLE_TITLE"; // 溢出旅行卡片回收
    public static final String TRAVEL_CARD_RECYCLE_CONTENT = "TRAVEL_CARD_RECYCLE_CONTENT"; // 亲爱的掌柜，由于您部分旅行卡片数量已溢出，现已将多余的{0}x{1}回收，附件为获得奖励，敬请查收！

    /**
     * 发邮件最后都要走这
     *
     * @param checkAnnexes 检查附件是否有特殊处理的道具
     */
    private static void addMailCore(UserMail userMail, GamePlayer receivePlayer, boolean checkAnnexes) {
        if (checkAnnexes) {
            sendAbleItem(userMail, receivePlayer);
        }
        // 检测财神道具
        Property mammonReward = new Property();
        Property property = PropertyHelper.parseStringToProperty(userMail.getAnnexes());
        if (property != null) {
            for (Map.Entry<Integer, BigInteger> entry : property.getGoods().entrySet()) {
                Integer decorationId = entry.getKey();
                BigInteger count = entry.getValue();
                // 不是财神称号不处理
                if (!MammonConfigMgr.isMammonDecorationId(decorationId)) {
                    continue;
                }
                mammonReward.addProperty(new Property(decorationId, count));
                // 数量清空
                entry.setValue(BigInteger.ZERO);
            }
        }
        userMail.setAnnexes(PropertyHelper.parsePropertyToString(property));
        synchronized (GamePlayerMgr.getPlayerLock(userMail.getReceiveUserId())) {
            // 重新拉一下在线用户，防止执行到这里playMap已经被移除
            receivePlayer = GamePlayerMgr.getOnlinePlayer(userMail.getReceiveUserId());
            if (receivePlayer != null) {
                receivePlayer.getModule(MailModule.class).addUserMail(userMail);
            } else {
                UserMailBussiness.addUserMail(userMail);
            }
            // 写入邮件后处理下财神称号
            MammonMgr.handlerMammonReward(userMail.getActivityId(), userMail.getReceiveUserId(), mammonReward, eLogMoneyType.Mail, eLogMoneyType.MailOpen);
        }
    }

    public static void sendMail(long receivedId, long sendUserId, int type, String annexes, String content, String title, Date sendTime) {
        GamePlayer receivePlayer = GamePlayerMgr.getOnlinePlayer(receivedId);
        UserMail userMail = buildMail(receivedId, sendUserId, type, annexes, content, title, sendTime);
        addMailCore(userMail, receivePlayer, true);
    }


    public static void sendMailAdmin(long receivedId, int type, String annexes, String content, String title, long personalId,String qrCode, int activityId) {
        sendMailAdmin(receivedId, 0, type, annexes, content, title, new Date(), personalId, qrCode, activityId);
    }

    public static void sendMailAdmin(long receivedId, long sendUserId, int type, String annexes, String content, String title, Date sendTime, long personalId,String qrCode, int activityId) {
        GamePlayer receivePlayer = GamePlayerMgr.getOnlinePlayer(receivedId);
        UserMail userMail = buildMail(receivedId, sendUserId, type, annexes, content, title, sendTime);
        userMail.setPersonalId(personalId);
        userMail.setQrCode(qrCode);
        userMail.setActivityId(activityId);
        if(activityId > 0){
            ActivityInfo activityInfo = ActivityInfoMgr.getActivityInfo(activityId);
            if(activityInfo != null){
                userMail.setServerList(activityInfo.getServerListStr());
            }
        }
        addMailCore(userMail, receivePlayer, true);
    }

    /**
     * 发送邮件前，把邮件里的凭证先发了
     *
     * @param userMail 直接修改里面annexes
     * @param player   null的时候加到数据库，否则加Module
     */
    private static void sendAbleItem(UserMail userMail, GamePlayer player) {
        try {
            Property rewardProp = PropertyHelper.parseStringToProperty(userMail.getAnnexes());
            Property ableProp = new Property();
            // 提取凭证道具奖励
            if (rewardProp != null) {
                List<Integer> goodsIdList = new ArrayList<>(rewardProp.getGoods().keySet());
                for (int goodsId : goodsIdList) {
                    if (GoodsMgr.isAbleGoods(goodsId)) {
                        BigInteger count = rewardProp.getCountByGoodsId(goodsId);
                        if (count.compareTo(BigInteger.ZERO) > 0) {
                            ableProp.addProperty(goodsId, count);
                            rewardProp.removeProperty(goodsId);
                        }
                    }
                }
            }

            if (!ableProp.isNothing()) {
                // 替换原本奖励
                userMail.setAnnexes(PropertyHelper.parsePropertyToString(rewardProp));

                String language = UserMgr.getLanguage(userMail.getReceiveUserId());
                String title = MultipleLanguageMgr.getContent(AUTO_ADD_ABLE_ITEM_TITLE, language);
                for (Map.Entry<Integer, BigInteger> entry : ableProp.getGoods().entrySet()) {
                    // 发送凭证奖励
                    ActivityAbleMgr.addAbleItem(userMail.getReceiveUserId(), entry.getKey(), entry.getValue().longValue(), eLogMoneyType.AbleItemOnMailAnnexes);
                    // 发送邮件通知
                    GoodsInfo goodsInfo = GoodsMgr.getGoodsById(entry.getKey());
                    String itemName = goodsInfo == null ? String.valueOf(entry.getKey()) : MultipleLanguageMgr.getContent(goodsInfo.getGoodsName(), language);
                    String content = StringUtils.format(MultipleLanguageMgr.getContent(AUTO_ADD_ABLE_ITEM_CONTENT, language), itemName, entry.getValue());
                    UserMail tmpMail = buildMail(userMail.getReceiveUserId(), userMail.getReceiveUserId(), userMail.getMailType(), "", content, title, new Date());
                    addMailCore(tmpMail, player, false);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     *player load时使用这个发送邮件，不然player还未加入map
     */
    public static void sendMailOnLoad(GamePlayer receivePlayer, int type, String annexes, String content, String title) {
        if(null == receivePlayer){
            return;
        }
        UserMail userMail = buildMail(receivePlayer.getUserId(), 0, type, annexes, content, title, new Date());
        addMailCore(userMail, receivePlayer, true);
    }

    public static void sendMail(long receivedId, int type, String annexes, String content, String title) {
        sendMail(receivedId, 0, type, annexes, content, title, new Date());
    }

    public static UserMail buildMail(long receivedId, long sendUserId, int type, String annexes, String content, String title, Date sendTime) {
        return addMail(receivedId, sendUserId, SYSTEM_MAIL, type, annexes, content, title, sendTime);
    }

    public static UserMail addMail(long receivedId, long sendUserId, String sendNickName, int type, String annexes, String content,
                                   String title, Date sendTime) {
        UserMail mail = new UserMail();
        mail.setMailUid(UUIDHelper.randomUUID(String.valueOf(GameServer.getInstance().getServerId())));
        mail.setMailType(type);
        mail.setTitle(title);
        mail.setContent(content);
        mail.setAnnexes(annexes);
        mail.setSendTime(sendTime);
        mail.setSendUserId(sendUserId);
        mail.setSendNickName(sendNickName);
        mail.setReceiveUserId(receivedId);
        mail.setRead(false);
        mail.setReadTime(new Date());
        mail.setGetReward(false);
        mail.setQrCode("");
        mail.setDelete(false);
        mail.setInsertOption();
        return mail;
    }

    /**
     * 邮件是否过期
     */
    public static boolean isMailExpired(ServerMail serverMail){
        if(null == serverMail){
            return true;
        }
        long nowTime = System.currentTimeMillis();
        if(StringUtils.isNullOrEmpty(serverMail.getAnnexes())){
            return nowTime - serverMail.getSendTime().getTime() > GameConfig.MAIL_NO_ANNEXES_EXPIRED_DAY * DateHelper.DAY_MILLIONS;
        }else {
            return nowTime - serverMail.getSendTime().getTime() > GameConfig.MAIL_HAS_ANNEXES_EXPIRED_DAY * DateHelper.DAY_MILLIONS;
        }
    }

    /**
     * 邮件是否过期
     */
    public static boolean isMailExpired(UserMail userMail){
        if(null == userMail){
            return true;
        }
        long nowTime = System.currentTimeMillis();
        if(StringUtils.isNullOrEmpty(userMail.getAnnexes())){
            return nowTime - userMail.getSendTime().getTime() > GameConfig.MAIL_NO_ANNEXES_EXPIRED_DAY * DateHelper.DAY_MILLIONS;
        }else {
            return nowTime - userMail.getSendTime().getTime() > GameConfig.MAIL_HAS_ANNEXES_EXPIRED_DAY * DateHelper.DAY_MILLIONS;
        }
    }

    public static void sendMail(long receivedId, short value, String rewardStr, String content, String title, int activityId, String serverListStr) {
        UserMail userMail = buildMail(receivedId, 0, value, rewardStr, content, title, new Date());
        userMail.setActivityId(activityId);
        userMail.setServerList(serverListStr);
        GamePlayer receivePlayer = GamePlayerMgr.getOnlinePlayer(receivedId);
        addMailCore(userMail, receivePlayer, true);
    }
}
